Computer software typically responds to user input within a wide range of potential responses. For instance, one reaction to user input, for example, mouse input, or other input from a pointing device, can be to update a location of a cursor on a display screen. Other responses to user input can involve more extensive tasks, such as retrieval or generation of new content to be displayed on the display screen. In yet another example, an application can respond to user input with complex manipulations and/or transforms on displayed content which has been previously generated.
With the rapid proliferation of touch input technology, e.g., touch screens, multi-touch displays, etc., computer software is exposed to ever increasing variance in user input type. By way of example, touch input can involve various finger and hand manipulations such as swipes, pinches, taps, persistent contacts, etc. Such touch input can generate an influx of complex input for applications to respond to at a given time.
Typically, user input is processed, from user action to application response, according to the following procedure. User actions are captured as user input via input devices, e.g., keyboards, mice, styluses, touch screens, etc. The input devices, and associated hardware, transform the user actions into signals received by an operating system. The operating system can process the signals, identify an application or applications associated with the user input, and send one or more messages to the application(s) via system application program interfaces (APIs), system libraries, application frameworks, or the like. The application(s) apply application logic to generate an appropriate response, which traverse back through the operating system to output hardware that expresses the response to the user. The aforementioned process can introduce additional processing time, which can negatively impact application responsiveness, particularly with increasingly complex input types like touch input. Further, the additional processing time introduces visible effects, particularly with touch input. For instance, with touch input, a user can directly relate a finger position with a response on a screen.
The above-described deficiencies of today's input processing and response systems are merely intended to provide an overview of some of the problems of conventional systems, and are not intended to be exhaustive. Other problems with conventional systems and corresponding benefits of the various non-limiting embodiments described herein may become further apparent upon review of the following description.